# tune2fs(8) completion                                    -*- shell-script -*-

_tune2fs()
{
    local cur prev words cword
    _init_completion || return

    case $prev in
        -*[cCEiJLmrT])
            return
            ;;
        -*e)
            COMPREPLY=($(compgen -W 'continue remount-ro panic' -- "$cur"))
            return
            ;;
        -*g)
            _gids
            ((${#COMPREPLY[@]})) &&
                COMPREPLY=($(compgen -g -W '"${COMPREPLY[@]}"' -- "$cur"))
            return
            ;;
        -*M)
            _filedir -d
            return
            ;;
        -*o)
            local -a opts=(^debug ^bsdgroups ^user_xattr ^acl ^uid16
                ^journal_data ^journal_data_ordered ^journal_data_writeback
                ^nobarrier ^block_validity ^discard ^nodelalloc)
            COMPREPLY=($(compgen -W '${opts[@]} ${opts[@]#^}' -- "$cur"))
            return
            ;;
        -*O)
            local -a opts=(^dir_index ^dir_nlink ^encrypt ^extent ^extra_isize
                ^filetype ^flex_bg ^has_journal ^huge_file ^large_file
                ^metadata_csum ^mmp ^project ^quota ^read-only ^resize_inode
                ^sparse_super ^uninit_bg)
            COMPREPLY=($(compgen -W '${opts[@]} ${opts[@]#^}' -- "$cur"))
            return
            ;;
        -*u)
            _uids
            ((${#COMPREPLY[@]})) &&
                COMPREPLY=($(compgen -u -W '"${COMPREPLY[@]}"' -- "$cur"))
            return
            ;;
        -*U)
            COMPREPLY=($(compgen -W 'clear random time' -- "$cur"))
            return
            ;;
    esac

    if [[ $cur == -* ]]; then
        COMPREPLY=($(compgen -W '$(_parse_usage "$1")' -- "$cur"))
        return
    fi

    cur=${cur:=/dev/}
    _filedir
} &&
    complete -F _tune2fs tune2fs

# ex: filetype=sh
